home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / stat.zip / RANDGEN.PAS < prev    next >
Pascal/Delphi Source File  |  1990-08-07  |  3KB  |  86 lines

  1. program random_generator_test;
  2.  
  3. uses
  4.     stat;
  5. const
  6.      zero = 0.0;
  7. var
  8.    r       : single_array_pointer;
  9.    quarter : quartype;
  10.    j,k     : word;
  11.    small,
  12.    large,
  13.    stand,
  14.    temp    : single;
  15.    mean,
  16.    sd,dummy      : single;
  17.    dummyl,dummyh : single;
  18.    number,d,d1   : word;
  19.    skew,qur      : single;
  20.    se_mean       : single;
  21.  
  22. begin  { begin main program }
  23.      for j := 1 to 5 do
  24.         randomize;
  25.      repeat
  26.            write('Enter in number of elements in array-->');
  27.            readln(number);
  28.      until number > 1;
  29.      create_single_array(number,r);
  30.  
  31.      write('Enter mean of values-->');
  32.      readln(mean);
  33.      write('Enter standard deviation of values-->');
  34.      readln(sd);
  35.  
  36.      for j := 1 to number do
  37.          r^[j] := rndnorm1(mean,sd);
  38.  
  39.      elem_stat(number,r,small,large,temp,stand);
  40.                        moments(number,r,temp,stand,skew,qur);
  41.      quart(number,r,quarter);
  42.      se_mean := standard_error(number,stand,1);
  43.  
  44.      small := quarter[1];
  45.      large := quarter[5];
  46.      dummyl := mean - se_mean;
  47.      dummyh := mean + se_mean;
  48.      writeln('                                                     Standard error 1*SD');
  49.      writeln('                         Theory   Observed  Difference   Low       High');
  50.      writeln('                        --------- --------- ---------- -------- ----------');
  51.      writeln('Mean                  ',mean:10:3,temp:10:3,(temp-mean):10:3,dummyl:10:3,dummyh:10:3);
  52.      dummy := standard_error(number,stand,4);;
  53.      dummyl := sd - dummy;
  54.      dummyh := sd + dummy;
  55.      writeln('Standard Deviation    ',sd:10:3,stand:10:3,(stand-sd):10:3,dummyl:10:3,dummyh:10:3);
  56.  
  57.      writeln(' Skewness             ',zero:10:3,skew:10:3,(zero-skew):10:3);
  58.      writeln(' Qurtosis             ',zero:10:3,(qur-3.0):10:3,(zero-qur+3.0):10:3);
  59.      dummy := mean + 4.0*sd;
  60.      writeln('Largest value  4*SD   ',dummy:10:3,large:10:3,(large - dummy):10:3);
  61.      dummy := mean - 4.0*sd;
  62.      writeln('Smallest value 4*SD   ',dummy:10:3,small:10:3,(small - dummy):10:3);
  63.      dummyh := temp + stand;
  64.      dummyl := temp - stand;
  65.      sd     := temp + 2.0*stand;
  66.      mean   := temp - 2.0*stand;
  67.      d := 0;
  68.      d1 := 0;
  69.      for j := 1 to number do
  70.      begin
  71.          if (r^[j] >= dummyl) and (r^[j] <= dummyh) then
  72.             inc(d);
  73.          if (r^[j] >= mean) and (r^[j] <= sd) then
  74.             inc(d1);
  75.      end;
  76.  
  77.      writeln('Percent between +- 1*SD   68.3 %',(100.0*d/number):8:1,' %');
  78.      writeln('Percent between +- 2*SD   95.5 %',(100.0*d1/number):8:1,' %');
  79.      writeln;
  80.      writeln('Number of values = ',number:10);
  81.      for j := 1 to 5 do
  82.          write(quarter[j]:10:3);
  83.  
  84. end.
  85.  
  86.